╘APE AND DISK ARE NORMALLY USED FOR FILING INFORMATION. ╔N THIS SECTION WE LOOK AT SIMPLE TAPE AND DISK SEQUENTIAL FILES. "╙EQUENTIAL" MEANS JUST THAT; INFORMATION ON FILE IS WRITTEN AND READ BACK IN THE SAME ORDER. ╘HERE IS NO HOPPING. ╘O READ BACK THE TENTH ITEM IN A SEQUENTIAL FILE, YOU HAVE TO GO THROUGH THE PRECEEDING NINE, JUST AS IS THE CASE WITH, FOR INSTANCE, AUDIO TAPE. ╙INCE THE TAPE AND DISK FILING METHODS ARE ALMOST IDENTICAL, BOTH ARE DESCRIBED HERE. ╫HERE THEY DIVERGE, SO WILL WE USING SUBTITLES:
╘┴╨┼: ╨UT ANY UNIMPORTANT OR BLANK TAPE IN THE RECORDER, CLOSE THE DOOR, AND REWIND THE TAPE. ┘OU DO NOT HAVE TO ADVANCE PAST THE LEADER, THE COMPUTER DOES IT FOR YOU.
─╔╙╦: ╨UT ANY UNIMPORTANT DISK IN THE DRIVE, CLOSE THE DOOR AND SKIP TO THE "╙╘┴╥╘╔╬╟ ┴ ╘╔╬┘ ╞╔╠┼" HEADING. ╔F YOU HAVE A BRAND NEW DISK, STRAIGHT FROM A BOX, OR ANY OLD DISK THAT YOU CAN ERASE, LET'S FORMAT IT NOW:
╚┼┴─┼╥"╨╥┴├╘╔├┼ ─╔╙╦",╔╨5,─0
╔T DOESN'T MATTER WHAT NAME YOU GIVE THE DISK, ╨╥┴├╘╔├┼ ─╔╙╦ IS AS GOOD A NAME AS ANY. ╘HE NAME HAS TO FIT IN SIXTEEN LETTERS (NO COMMAS, COLONS OR ASTERISKS, PLEASE). ╘HE TWO-LETTER ╔─ AT THE END (╨5 IN OUR CASE) IS IMPORTANT: USE A UNIQUE COMBINATION OF LETTERS FOLLOWING THE LETTER ╔, THEN WRITE DRIVE NUMBER, NORMALLY ZERO, FOLLOWING THE LETTER ─. ╔F YOU HAPPEN TO BE USING DEVICE NUMBER OTHER THAN 8, TACK ON ANOTHER COMMA, AND THE WORDS "╧╬ ╒9" AT THE END. ╬O QUOTES, OF COURSE, AND 9 CAN BE ANOTHER NUMBER.
┴NY TROUBLE? ╔S THE DISK LIGHT FLASHING? ╔F YES, LET'S SEE WHAT THE DISK IS SAYING, AS THE DISK ONLY TALKS WHEN SPOKEN TO:
╨╥╔╬╘ ─╙$
╔F YOU HAD TROUBLES, GO BACK TO THE BEGINNING, OTHERWISE, LET'S GO ON.
Ç*FP3
Ç*CN1;--- ╙╘┴╥╘╔╬╟ ┴ ╘╔╬┘ ╞╔╠┼ ---Ç*CN0
╔N DIRECT MODE, TYPE AND PUSH ╥┼╘╒╥╬ AFTER EACH LINE:
Ç*FP10
╘┴╨┼: ╧╨┼╬2,1,1, "╞╔╥╙╘ ╞╔╠┼"
─╔╙╦: ╧╨┼╬2,8,3,"0:╞╔╥╙╘ ╞╔╠┼,╙,╫"
! ! ! ! ! !
! ! ! ! ! ---DISK ONLY,
! ! ! ! ! ╙,╫=SEQUENTIAL,WRITE
! ! ! ! -BOTH:FILE NAME UP TO 15 LETTERS
! ! ! ---DISK:DRIVE#
! ! ------DISK:CHANNEL# OR SECONDARY ADDRESS
! ! TAPE:1=WRITE,0=READ
! --------BOTH:DEVICE #
----------BOTH:FILE # TO WHICH WE ╨╥╔╬╘
KEEP IT UNDER 128.
Ç*FP4
┬╧╘╚: ╥$=├╚╥$(13) - THAT'S A ╥┼╘╒╥╬ CHARACTER
╨╥╔╬╘#2,"═╧╬─┴┘";╥$;
╨╥╔╬╘#2,"╘╒┼╙─┴┘";╥$;"╫┼─╬┼╙─┴┘";╥$;
╨╥╔╬╘#2,"╘╚╒╥╙─┴┘";╥$;
╫E'RE PRINTING DAYS OF THE WEEK AND FORCING CARRIAGE RETURNS BETWEEN THE ITEMS, JUST AS YOU PRINT ON THE SCREEN. ╔F YOU HAVE A VERY NEW DISK MODEL, YOU COULD SKIP ALL THIS ╥$ BUSINESS, BUT OTHER SYSTEMS MIGHT GIVE YOU TROUBLE -- MIGHT AS WELL USE IT AND GET USED TO IT.
╔F YOU DON'T HEAR OR SEE ANY TAPE OR DISK ACTIVITY, THAT'S ╧╦. ╘HE SYSTEMS ARE COLLECTING INFORMATION. ┴S SOON AS THEY COLLECT ENOUGH OR WE SAY THAT WE'RE DONE, THEY'LL SEND IT THROUGH. ╙INCE WE ARE READY LET'S MAKE SURE ALL THIS ENDS UP WHERE WE INTENDED (DON'T EVER, EVER, EVER FORGET THIS):
┬╧╘╚: ├╠╧╙┼ 2
╔F YOU HEARD SOME TAPE OR DISK NOISE NOW, THAT'S THE FINAL DELIVERY.
╘HIS REQUIRES A PROGRAM. ╫E CAN'T ╔╬╨╒╘ OR ╟┼╘ IN DIRECT MODE.
10 ╧╨┼╬ 5,1,0,"╞╔╥╙╘ ╞╔╠┼" TAPE
10 ╧╨┼╬ 5,8,3,"╞╔╥╙╘ ╞╔╠┼,╙,╥" DISK
20 ╔╬╨╒╘#5,╓$:╨╥╔╬╘ ╓$
30 ╔╞ ╙╘=0 ╟╧╘╧ 20
40 ├╠╧╙┼ 5
╓$ IS THE VARIABLE IN WHICH WE EXPECT TO FIND THE DAYS OF THE WEEK. ╙╘ TELLS US WHEN THE FILE IS FINISHED. ┘OU SHOULD SEE ON THE SCREEN EXACTLY WHAT YOU WROTE TO THE FILE.
╫E WROTE SINGLE ITEMS (DAYS) TO THE FILE, SEPARATED BY CARRIAGE RETURNS. ╫E GET BACK SINGLE ITEMS INTO VARIABLE ╓$.
╘HE ",╙,╥" IN THE DISK VERSION MEANS "╙EQUENTIAL, ╥EAD". ┘OU CAN SKIP THIS PART IN YOUR TYPING. ╙EQUENTIAL-╥EAD IS A DEFAULT. ─EFAULT IS A BUZZWORD MEANING, "IF YOU DON'T TELL IT TO THE COMPUTER, IT ASSUMES ╙,╥".
┴NOTHER NICE TOUCH IS THAT ALL THE VALUES IN THE ╧╨┼╬ STATEMENT CAN BE VARIABLES. ╘RY THIS:
╞$="╞╔╥╙╘ ╞╔╠┼":╞=5
─=1 (TAPE) OR ─=8 (DISK)
╙┴=0 (TAPE) OR ╙┴=3 (DISK)
╧╨┼╬ ╞,─,╙┴,╞$ (TAPE) OR ╧╨┼╬ ╞,─,╙┴,╞$+",╙,╥" (DISK)
AND PLUG IT ALL IN THE PROGRAM ABOVE. ╔T WILL WORK AND WILL ALLOW YOU EASY CHANGES IF YOU EVER NEED THEM.
╘HAT'S THE BARE-BONES ESSENTIALS OF FILING. ╫HAT IS MISSSING IS HANDLING POSSIBLE ERRORS THAT MAY WELL OCCUR. ╘HE FOLLOWING PROGRAMS TAKE CARE OF THAT.
Ç*CN1;--- ╫╥╔╘╔╬╟ ╞╔╠┼╙ ╔╬ ┴ ╨╥╧╟╥┴═ ---Ç*CN0
┘OU'RE UNLIKELY TO SIT IN FRONT OF THE MONITOR TYPING ╨╥╔╬╘#2,THIS, ╨╥╔╬╘#2, THAT ... IT GETS BORING. ┴ PROGRAM CAN DO IT FOR US. ╨ICK THE CORRECT FILE-WRITING PROGRAM, BELOW.
// PRG: TAPE SEQ.WR //
// PRG: DISK SEQ WR //
╘┴╨┼: YOU CAN REWIND AND WRITE OVER THE OLD FILE, OR KEEP THE TAPE POSITIONED WHERE IT IS AND CONTINUE WRITING. ╫HEN YOU START, AGAIN, MAKE SURE THE BUTTONS ARE UP. ╘HE COMPUTER HAS NO WAY OF TELLING WHICH BUTTONS ARE PUSHED. ╙O LONG AS ANYTHING IS DOWN, THE SILLY MACHINE THINKS IT'S THE CORRECT SET OF BUTTONS!
─╔╙╦: ╘HE PROGRAM WILL TELL YOU IF THERE ARE PROBLEMS BY USING AN ERROR CHECKING ROUTINE IN LINES 190-200.
╔═╨╧╥╘┴╬╘ ╬╧╘╔├┼, ┬╧╘╚ ╙┘╙╘┼═╙: IF YOU MUFFED UP ON YOUR TYPING A LITTLE BIT AND THE COMPUTER REPORTS AN ERROR, ─╧ ╬╧╘ ╞╔╪ ╘╚┼ ╨╥╧╟╥┴═ ╬╧╫. ╞IRST TYPE ├╠╧╙┼ 1. ╬OW YOU CAN FIX THE PROGRAM. ╘HIS IS NOT THAT IMPORTANT WITH ╘┴╨┼, BUT ─╔╙╦ PEOPLE MUST CLOSE FILES. ╘APE PEOPLE CAN SKIP WHAT FOLLOWS UNTIL THE NEXT HEADING:
─╔╙╦: ╔F YOU DO NOT CLOSE FILES, THE ─╔╥┼├╘╧╥┘ WILL SHOW AN ASTERISK ON THE RIGHT OF THE NAME. ╘HAT INVITES LOTS OF TROUBLES LATER. ╙O, ├╠╧╙┼ YOUR FILES, DO NOT EVER ALLOW AN ASTERISK FILE TO BE ON THE DISK. ╔F YOU DO LET ONE OR TWO PASS THROUGH, IMMEDIATELY, AS SOON AS YOU SEE ONE, TYPE ├╧╠╠┼├╘ OR ╓┴╠╔─┴╘┼ TO REMOVE UNCLOSED FILES. ╘HEY MUST BE REMOVED TO ASSURE THAT OTHER FILES WILL NOT BE DAMAGED.
╫E HAVE TO HAVE A PROGRAM. ╫E HAVE TO USE ╔╬╨╒╘ OR ╟┼╘. ╘HEY ONLY WORK IN PROGRAM MODE. ╘YPE IN ONE OF THE TWO PROGRAMS BELOW, JUDGING BY THE TITLE, WHICH TO USE:
// PRG: TAPE SEQ.RD //
// PRG: DISK SEQ RD //
╘┴╨┼: REWIND YOUR TAPE. ═AKE SURE THE BUTTONS ARE UP. ╥╒╬ THE PROGRAM. ╔T WILL TELL YOU WHEN TO PRESS ╨╠┴┘.
─╔╙╦: ╥╒╬ THE PROGRAM. ╔F THE DISK DOOR WAS UP, YOU GOT A MESSAGE FROM THE DISK, RIGHT? ├LOSE IT, AND TRY AGAIN. ╘HAT IS ONE OF MANY REASONS FOR CHECKING WHAT THE DISK HAS TO SAY TO US.
// PIC: SEQ.TP // // PIC: DSK SEQ //
╔N THE DISK VERSION, ╠INES 200-210 SHOW AN ALTERNATIVE (BUT UNIVERSAL IN THE ├╧══╧─╧╥┼ MACHINES) WAY OF GETTING ─╙ AND ─╙$, THE DISK MESSAGES. ╔T COULD HAVE BEEN CODED:
╔╞ ─╙=0 ╘╚┼╬ ╥┼╘╒╥╬:┼╠╙┼ ╨╥╔╬╘ ─╙;─╙$
Ç*FP4
Ç*CN1;--- ├╧╬╬┼├╘╔╬╟ ╞╔╠┼╙ ---Ç*CN0
╙EVERAL SEQUENTIAL FILES THAT HAVE BEEN WRITTEN WITH SIMILAR CONTENTS CAN BE CONNECTED INTO ONE LONG FILE. ╘HIS IS DONE BY A DISK COPY COMMAND. ╔F YOU HAVE THREE FILES, NAMED "╞╔╠┼┴" AND "╞╔╠┼┬" AND "╞╔╠┼├" AND WISH TO CONNECT THEM INTO ONE LARGE FILE, THE MAGIC WORDS ARE:
Ç*FP3
╧╨┼╬ 1,8,15
╨╥╔╬╘#1,"├0:┬╔╟╞╔╠┼┴┬├=0:╞╔╠┼┴,0:╞╔╠┼┬,0:╞╔╠┼├"
├╠╧╙┼ 1
╔T CAN ALL BE TYPED ON ONE LINE, AND IT CAN BE USED INSIDE A PROGRAM. ╔F YOU HAVE A DUAL DRIVE, THE DESTINATION DRIVE CAN BE DIFFERENT, "1" FOR EXAMPLE, SO THE COMMAND MIGHT BEGIN: ├1=┬╔╟ ETC.
╙EQUENTIAL FILES CAN GROW. ┘OU CAN ATTACH NEW INFORMATION, IF YOU WISH, TO THE EXISTING FILE, BY ╧╨┼╬╔╬╟ DIFFERENTLY: INSTEAD OF THE "╙,╫" AT THE END, YOU CAN CODE ",┴". ╘HE LETTER ┴ STANDS FOR "APPEND". ╘HE COMPUTER WILL TRANSLATE IT TO ╙EQUENTIAL-╫RITE CONTINUED FILE. ╘HE ┴ COMMAND IS OFTEN MISSING IN THE ├╧══╧─╧╥┼ DISK MANUALS, BUT IT IS THERE AND YOU CAN USE IT WHENEVER YOU WISH.
*** ╨╥╧╩┼├╘╙ ***
╘HE TAPE PROGRAM WROTE NUMBERS AND LETTERS OUT. ╘HE DISK PROGRAM WROTE ITEMS FROM ─┴╘┴ LINES. ╚OW ABOUT SWAPPING THE CONTENTS NOW? ╘AKE THE OTHER GUY'S INFORMATION AND WRITE IT ON YOUR FILE, CHANGING THE FILE NAME, OF COURSE, SO WE WOULDN'T HAVE CONFUSION. ┬RING THEM BACK ON THE SCREEN WITH THE READER.
┬UILD A TABLE IN MEMORY (ARRAY) OF SQUARE ROOTS OF VALUES FROM 1 TO 100, AND WRITE THEM OUT. ╒SE THE READER TO CONFIRM THAT EVERYTHING IS ALL RIGHT.
╨UT TOGETHER A SAMPLE INVENTORY FILE. ┘OU'LL NEED FOUR VARIABLES, PART NUMBER, NAME, QUANTITY, UNIT PRICE. ╥EVIEW HOW WE WROTE DAYS OF THE WEEK. ╔T'S ╧╦ TO ╨╥╔╬╘ SEVERAL ITEMS IN ONE ╨╥╔╬╘ STATEMENT, SO LONG AS YOU FORCE THE CARRIAGE RETURNS CAREFULLY.
╘IE THE FILING INFORMATION WITH SORTING OR SEARCHING PROGRAMS YOU HAVE SEEN. ╙ET UP A FILE, ATTACH A READING ROUTINE TO THE SORT ROUTINE AND MAKE IT SORT.
*** ╚╔╬╘╙ ┴┬╧╒╘ ╘╥╧╒┬╠┼ ╙╨╧╘╙ ***
─ON'T ALLOW COMMAS AND COLONS TO BE WRITTEN TO A FILE. ╔╬╨╒╘ WILL NOT BE ABLE TO BRING ANYTHING BACK FROM BEYOND THOSE CHARACTERS (AND IT WON'T EVEN SAY ?┼╪╘╥┴ ╔╟╬╧╥┼─, AS IT NORMALLY DOES WITH ╔╬╨╒╘ FROM THE SCREEN!). ╔F YOU DO, HOWEVER, GET MESSED UP, THIS LITTLE EMERGENCY ROUTINE IS A READER FOR ALL SEQUENTIAL FILES (INCLUDING PROGRAM LISTINGS - MORE ON THAT BELOW):
// PRG: TRACE FILE //
╫ATCH THAT YOU DON'T SKIP THE SEMICOLON IN THE ╨╥╔╬╘ STATEMENT.
╙OME PEOPLE HAVE THIS CODE MEMORIZED. ╘HEY DON'T LOAD IT, BUT WHEN A FILE ISN'T WORKING RIGHT, THEY JUST TYPE THOSE THREE LINES OF CODE ANYPLACE AND ╥╒╬ THAT SECTION UNTIL THE FILE IS RIGHT. ─ISK'S TALKER, ITS CHANNEL 15 ISN'T EVEN QUERIED. IT'S NOT SO IMPORTANT WHEN YOU'RE READING A FILE, AND ╙╘ TELLS US MUCH THAT WE NEED TO KNOW. ┘OU CAN READ ABOUT THE ╙╘ VARIABLE IN THE MANUAL.
╘HE ROUTINE IS SLOOOOOW. ┬UT IT GETS EVERY CHARACTER. ╙O A CARRIAGE RETURN PRINTS WHERE ONE WAS ON FILE, AND IF EVERYTHING IS CORRECT, YOU'LL GET ONE ITEM PER SCREEN LINE. ╔F THINGS ARE MUFFED UP ... WELL, YOU MAY GET A CHANGE IN COLORS, OR SCREEN WILL CLEAR, OR YOU'LL SEE THE EFFECT OF THE DREADED COMMAS (THINGS WILL ╘┴┬ ON THE SCREEN) IN THE WORST CASE. ┬UT IN THE BEST CASE, THE SCREEN POSITIONS OF ITEMS WILL TELL YOU IF YOU'RE WRITING YOUR FILE CORRECTLY. ╚APPY FILING!
╔F YOU MUST WRITE COMMAS AND COLONS TO A FILE (AND THERE ARE MANY APPLICATIONS WHEN YOU MUST), THERE IS A WAY TO READ IT BACK, BUT IT REQUIRES MACHINE CODE. ╟ET HOLD OF ╩IM ┬UTTERFIELD'S ╙╘╥╔╬╟╘╚╔╬╟ PROGRAM (FROM ╘╨╒╟ OR THE ╘╥┴╬╙┴├╘╧╥, OR HIS ═ACHINE CODE BOOK AND DISK). ╙╘╥╔╬╟╘╚╔╬╟ DOES NOT HAVE THE FAULTS THAT ╔╬╨╒╘ HAS, AND IS EASY TO HOOK UP TO YOUR PROGRAMS.
┴ MORAL: ─O NOT FILE ANY IMPORTANT INFORMATION UNTIL YOU UNDERSTAND SIMPLE FILING. ═ANY PEOPLE WRITE VOLUMES TO DISK, ONLY TO FIND OUT LATER THAT THEY CAN'T READ IT BACK. ╙TART SMALL, AND STAY WITH TINY PROJECTS UNTIL YOU KNOW EXACTLY WHAT'S HAPPENING. ┘OU HAVE TO HAVE COMPLETE CONTROL OVER THE FILE BEFORE YOU CAN USE IT.